Package-level declarations

Types

Link copied to clipboard
sealed interface LasCrs

Coordinate reference system detected from a LAS file's GeoKeyDirectory VLR. Only the cases the earth.worldwind.layer.pointcloud.PointCloudLayer can georeference without an external projection library are modelled; anything else surfaces as Unknown so the caller can supply a projection hook.

Link copied to clipboard

Process-wide registry for the optional LazChunkDecoder. Wire once at app startup.

Link copied to clipboard
class LasHeader

Parsed LAS/LAZ public header block. Covers LAS versions 1.0–1.4 — later versions extend the block but keep every field below at a stable offset. All multi-byte fields are little-endian per the ASPRS spec; reads go through BinaryDataView.

Link copied to clipboard

Decoded standalone point cloud from a LAS/LAZ file. Positions are in the file's native CRS (see crs); georeferencing to the globe is the earth.worldwind.layer.pointcloud.PointCloudLayer's job. Colours are always 8-bit RGBA — from the file's RGB channels when present, else a grayscale ramp synthesized from intensity so every cloud renders visibly.

Link copied to clipboard
object LasReader

Parses a LAS or LAZ file into a LasPointCloud. Uncompressed records are read directly; LAZ records are decompressed by the registered LazChunkDecoder into the same standard-record byte layout, so one field-extraction path serves both.

Link copied to clipboard
class LasVlrData(val crs: LasCrs, val laszip: LaszipVlr?)

Result of walking every VLR once: the detected CRS and the LASzip VLR (null when uncompressed).

Link copied to clipboard

Walks the Variable Length Records that follow the public header, extracting the two we care about: the GeoKeyDirectory (CRS) and the LASzip compression recipe. Unknown records are skipped by their declared length. Extended (1.4) VLRs are not walked — the LASzip and GeoKey records always live in the standard VLR block.

Link copied to clipboard
data class LaszipItem(val type: Int, val size: Int, val version: Int)

One LASzip item record (type/size/version) from the compression VLR.

Link copied to clipboard
class LaszipVlr(val compressor: Int, val chunkSize: Int, val items: List<LaszipItem>)

Parsed LASzip VLR — the recipe the LazChunkDecoder needs: compressor kind, chunk size, and the ordered item list that makes up each compressed point record.

Link copied to clipboard
interface LazChunkDecoder

Pluggable LASzip decompressor. Decompression is a large, self-contained algorithm, so it lives behind this interface exactly like the 3D-Tiles Draco decoder (earth.worldwind.layer.ogc3d.Ogc3dDecoderRegistry.dracoPointCloudDecoder): plain-LAS parsing is always available; opening a .laz requires an installed decoder.